package com.hspedu.homework;

/**
 * @Author Stringzhua
 * @Date 2024/3/3 15:57
 * description:定义一个Person类{name,age,job}
 * 初始化Person对象数组,有3个Person对象
 * 并按age从大到小进行排序,使用冒泡排序
 */
public class homework01 {
    public static void main(String[] args) {
        Person[] persons = new Person[3];
        persons[0] = new Person("jack", 10, "JavaEE工程师");
        persons[1] = new Person("tom", 50, "大数据工程师");
        persons[2] = new Person("marry", 30, "PHP工程师");

        //输出当前对象数组
        for (int i = 0; i < persons.length; i++) {
            System.out.println(persons[i]);//默认调用对象的toString方法
        }

        //使用冒泡排序将年龄从大到小进行排序
        System.out.println("使用冒泡排序将年龄从大到小进行排序");
        Person tmp = null;//临时变量用于交换
        for (int i = 0; i < persons.length - 1; i++) {//外层循环
            for (int j = 0; j < persons.length - 1 - i; j++) {//内层循环
                //将年龄从大到小进行排序,
                // 如果前面的人的年龄小于后面的人的年龄就交换
                if (persons[i].getAge() < persons[i + 1].getAge()) {
                    tmp = persons[i];
                    persons[i] = persons[i + 1];
                    persons[i + 1] = tmp;
                }
            }
        }
        System.out.println("排序后的效果:");
        for (int i = 0; i < persons.length; i++) {
            System.out.println(persons[i]);//默认调用对象的toString方法
        }


//        //使用冒泡排序将年龄从小到大进行排序
//        System.out.println("使用冒泡排序将年龄从小到大进行排序");
//        Person tmp1 = null;//临时变量用于交换
//        for (int i = 0; i < persons.length - 1; i++) {//外层循环
//            for (int j = 0; j < persons.length - 1 - i; j++) {//内层循环
//                //将年龄从小到大进行排序,
//                // 如果前面的人的年龄小于后面的人的年龄就交换
//                if (persons[i].getAge() > persons[i + 1].getAge()) {
//                    tmp1 = persons[i];
//                    persons[i] = persons[i + 1];
//                    persons[i + 1] = tmp1;
//                }
//            }
//        }
//        System.out.println("排序后的效果:");
//        for (int i = 0; i < persons.length; i++) {
//            System.out.println(persons[i]);//默认调用对象的toString方法
//        }


//        //使用冒泡排序将名字长度从小到大进行排序
//        System.out.println("使用冒泡排序将名字长度从小到大进行排序");
//        Person tmp1 = null;//临时变量用于交换
//        for (int i = 0; i < persons.length - 1; i++) {//外层循环
//            for (int j = 0; j < persons.length - 1 - i; j++) {//内层循环
//                //将名字长度从小到大进行排序,
//                // 如果前面的人的名字长度小于后面的人的名字长度就交换
//                //persons[i].getName().length()
//                if (persons[i].getName().length() > persons[i + 1].getName().length()) {
//                    tmp1 = persons[i];
//                    persons[i] = persons[i + 1];
//                    persons[i + 1] = tmp1;
//                }
//            }
//        }
//        System.out.println("排序后的效果:");
//        for (int i = 0; i < persons.length; i++) {
//            System.out.println(persons[i]);//默认调用对象的toString方法
//        }

    }
}

class Person {
    private String name;
    private int age;
    private String job;

    //toString方法
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", job='" + job + '\'' +
                '}';
    }

    //有参构造器
    public Person(String name, int age, String job) {
        this.name = name;
        this.age = age;
        this.job = job;
    }

    //get和set方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }
}